package cn.net.pap.pinyincut.core.algorithm;

import cn.net.pap.pinyincut.core.Term;
import cn.net.pap.pinyincut.core.algorithm.core.PinyinSplitter;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class PinyinSplitterUtil {

    public List<Term> getTextTokenizer(String line) throws IOException {
        try {
            List<Term> returnList = new ArrayList<>();
            List<String> splitList = PinyinSplitter.split(line);
            if (splitList != null && splitList.size() > 0) {
                int idx = 0;
                for (String splitStr : splitList) {
                    // todo 由于 现有的拼音插件，在分词的时候，zh ch sh 只会取前面的 z c s ，所以这里做一下处理，其实可以将其通过参数进行控制
                    // 但是由于当前的插件是基于 pinyin plugin 的，所以这里直接就只取了一个。
                    // Term term = new Term(idx, splitStr.length(), splitStr, "pycut");
                    Term term2 = new Term(idx, 1, splitStr.substring(0, 1), "pycut");
                    idx = idx + splitStr.length();
                    // returnList.add(term);
                    returnList.add(term2);
                }
            }
            return returnList;
        } catch (Exception e) {
            // throw new IOException(e);
            return new ArrayList<>();
        }
    }
}
